home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 1 / PC Actual CD 01.iso / f1 / mdisk25.arj / FONTS.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-09-29  |  3.2 KB  |  108 lines

  1. {$A+,B-,D-,E-,F-,G+,I+,L-,N-,O-,R-,S-,V+,X-}
  2.  
  3. Unit Fonts;
  4. Interface
  5.  
  6. { Módulo de activación de tipos alternativos }
  7. { (c) Emilio David Diaus López 1994          }
  8. {
  9. 9. Fonts: MαDulo De Caracteres Especiales
  10.  
  11. Para Evitar La MonotoníA Y La Semejanza Entre Programas Este MóDulo Modifica
  12. Algunos Caracteres De La Tabla De Caracteres De La Rom Mediante Las Rutinas De La 
  13. Bios, Se Averigua El Tipo De Caracteres Actual, Se Averigua La PosicióN De La Tabla De
  14. Caracteres En La Memoria, Se Copia A La Tabla De Usuario Y Se Le Indica Al Ordenador
  15. Que Utilice Esta Tabla En Vez De La Tabla Por Defecto.
  16. Primero  Utilicé Un Conjunto De 512 Caracteres, PudiéNdose Seleccionar Uno U Otro
  17. Juego Mediante Los Atributos De Color ,Si HabíA Color De Alta Intensidad Se Empleaban
  18. Los CóDigos De Usuario Y Si No Los CóDigos De La Bios.
  19. Para Evitar Que Durante La EjecucióN De Este Programa Bajo Windows U Os/2 Se Vean
  20. Caracteres ErróNeos En Pantalla Se Desactivaba Esta FuncióN Bajo Estos Entornos.
  21. Getfonttable Cargaba La Tabla De Fuentes En La Matriz Tabla, Setfont Activaba La Tabla
  22. De Caracteres Correspondiente, Setsecondtable Fijaba La Segunda Tabla De Caracteres
  23. Y Activefonttable La Activaba.
  24. DespuéS Mediante Un Programa De Mi Propia CreacióN Copié La Tabla Original De Los
  25. Caracteres Bios En Un Array Y La Modifique A Mi Antojo Para DespuéS Grabarla En Un
  26. Fichero Que DespuéS Se ConvertiríA En Un Fichero .Obj Mediante Binobj Y Que
  27. EnlazaríA Mediante El MóDulo Fonts En Mi Programa, A Su Vez Modifiqué El MóDulo
  28. Fonts Para Que Manejara Este Bloque De Caracteres. DespuéS De Estas Modificaciones
  29. El CóDigo De Fonts Contiene Los Siguientes Procedimientos:
  30.      Mdiskfnt - Procedimiento Que Apunta A La Nueva Tabla De Caracteres De
  31.      Mdiskpro.
  32.      Inicializar_Fuentes - Carga Y Activa Los Tipos De Usuario Mediante Las Funciones
  33.      De La B.I.O.S., Los Tipos Originales Se Reactivan Al Acabar La EjecucióN Del
  34.      Programa.
  35.  
  36. De Esta Manera Es Innecesario Iswindows Porque Los Caracteres Corresponden Con
  37. Los Tipos De Usuario Y Con Los Tipos De B.I.O.S. En Su NúMero Cosa Que No OcurríA En
  38. La Anterior ImplementacióN.
  39. }
  40. Procedure Mdiskfnt;
  41. Procedure Inicializar_Fuentes;
  42.  
  43. Implementation
  44. Uses Dos;
  45.  
  46. Var Wcursor:Word;
  47.  
  48. {$l mdiskfnt.obj}
  49. Procedure Mdiskfnt;External;
  50.  
  51.  
  52. Function Getcursor : Word;Assembler;
  53. Asm
  54.    Mov Ah,3
  55.    Mov Bh,0
  56.    Int 10h
  57.    Mov Ax,Cx
  58. End;
  59.  
  60. Procedure Setcursor(Vpwnewcursor : Word);Assembler;
  61. Asm
  62.     Mov Ah,1;
  63.     Mov Bh,0;
  64.     Mov Cx,Vpwnewcursor;
  65.     Int 10h
  66. End;
  67.  
  68. {Function Iswindows:Boolean;
  69. Var Result:Boolean;
  70.     Version:Word;
  71.  
  72.     Function Return:Word;Assembler;
  73.     Asm
  74.        Mov Ax,1600h
  75.        Int 2Fh
  76.     End;
  77. Begin
  78.      Result:=False;
  79.      Version:=Return;
  80.      If (Version<>$1600) Or (Lo(Dosversion)>=20) Then Result:=True;
  81.      Iswindows:=Result;
  82. End;}
  83.  
  84. Procedure Set_Table;
  85. Var R:Registers;
  86. Begin
  87.      R.Ax:=$1100;
  88.      R.Bh:=16;
  89.      R.Bl:=0;
  90.      R.Cx:=256;
  91.      R.Dx:=0;
  92.      R.Es:=Seg(Mdiskfnt);
  93.      R.Bp:=Ofs(Mdiskfnt);
  94.      Intr($10,R);
  95. End;
  96.  
  97. Procedure Inicializar_Fuentes;
  98.  
  99. Begin
  100.      {If Not(Iswindows) Then Begin}
  101.         Wcursor:=Getcursor;
  102.         Set_Table;
  103.         Setcursor(Wcursor);
  104.      {End;}
  105. End;
  106.  
  107. End.
  108.